home *** CD-ROM | disk | FTP | other *** search
/ PC Player 2004 May / pc player 2004-05.iso / Demos / FarCry / Data1.cab / _7A02100684BF41C9A80038CD6DE6A11C < prev    next >
Encoding:
Text File  |  2004-01-06  |  1.9 KB  |  64 lines

  1. // ===============================================================
  2. // Fragment Program: Heat Source
  3. // Description: outputs heat source for heatvision pass
  4. // Last Update: 04/12/2003
  5. // Coder: Tiago Sousa
  6. // ===============================================================
  7.  
  8. #include "../CGVPMacro.csi"
  9.  
  10. MainInput 
  11. {
  12.   uniform sampler2D baseMap : texunit0,
  13.   uniform sampler2D bumpMap : texunit1,
  14.   uniform samplerCUBE normCubeMap : texunit2,  
  15.   uniform sampler2D noiseMap : texunit3,
  16.   uniform float4 Heat 
  17. }
  18.  
  19. DeclarationsScript
  20. {
  21.   OUT_T0_T1_T2_T3_C0
  22.   FOUT
  23. }
  24.  
  25. CoreScript
  26. {
  27. //  // fetch texels  
  28. //  float4 baseColor = tex2D(baseMap, IN.Tex0.xy);            
  29. //  float4 vNormal = 2*(tex2D(bumpMap, IN.Tex1.xy)-0.5);
  30. //  float4 vLight = 2*(texCUBE(normCubeMap, IN.Tex2.xyz)-0.5);
  31. //  
  32. //  float fDot=saturate(1-dot(vNormal, vLight));      
  33. //  //fDot*=fDot;
  34. //  float fLum=saturate(dot(float3(0.33, 0.59, 0.11), baseColor)*IN.Color.w);  
  35. //  
  36. //  fLum=4*saturate(fLum*fLum);
  37. //  
  38. //  float fFinal=saturate(fDot* Heat.z)*fLum;
  39. //   
  40. //  float fFinal025=fFinal*0.25;  
  41. //  //OUT.Color.xyz = float3(fFinal, IN.Color.w, IN.Color.w);
  42. //  float3 fHeatMask=float3(0, 1, 1)*IN.Color.w;
  43. //  OUT.Color.xyz = saturate(fFinal+fHeatMask);
  44. //  OUT.Color.a = fFinal025;
  45.   
  46.   
  47.   // fetch texels  
  48.   float4 baseColor = tex2D(baseMap, IN.Tex0.xy);            
  49.   float4 vNormal = 2*(tex2D(bumpMap, IN.Tex1.xy)-0.5);
  50.   float4 vLight = 2*(texCUBE(normCubeMap, IN.Tex2.xyz)-0.5);
  51.   float4 noiseColor = tex2D(noiseMap, IN.Tex3.xy);            
  52.   
  53.   float fDot=saturate(dot(vNormal, vLight));      
  54.   fDot*=fDot;
  55.   float fLum=saturate(dot(float3(0.33, 0.59, 0.11), baseColor.xyz))*2;  
  56.   
  57.   fLum=saturate(fLum*fLum)*2;
  58.   
  59.   noiseColor=2*(dot(noiseColor.xyz, float3(0.33, 0.59, 0.11))-0.5);
  60.   noiseColor=4*(noiseColor*noiseColor-0.75);
  61.     
  62.   OUT.Color.xyz = saturate(fDot*fLum+0.1)*saturate(Heat.xyz+0.3);
  63.   OUT.Color.a = 1;
  64. }